package com.cleaningcloud.cld.service;

import com.cleaningcloud.cld.domain.CldMaterialAllocate;
import com.cleaningcloud.cld.domain.dto.CldMaterialAllocateDto;
import com.cleaningcloud.cld.domain.vo.CldMaterialAllocateVo;

import java.util.List;

/**
 * 物资调拨Service接口
 *
 * @author cleaningcloud
 * @date 2024-10-28
 */
public interface ICldMaterialAllocateService {
    /**
     * 查询物资调拨
     *
     * @param materialAllocateId 物资调拨主键
     * @return 物资调拨
     */
    CldMaterialAllocate selectCldMaterialAllocateByMaterialAllocateId(Long materialAllocateId);

    /**
     * 查询物资调拨列表
     *
     * @param cldMaterialAllocate 物资调拨
     * @return 物资调拨集合
     */
    List<CldMaterialAllocateVo> selectCldMaterialAllocateList(CldMaterialAllocate cldMaterialAllocate);


    /**
     * 查询领用记录列表
     *
     * @param cldMaterialAllocate 物资调拨
     * @return 物资调拨集合
     */
    List<CldMaterialAllocateVo> selectCldUseList(CldMaterialAllocateDto cldMaterialAllocate);

    /**
     * 新增物资调拨
     *
     * @param cldMaterialAllocate 物资调拨
     * @return 结果
     */
    int insertCldMaterialAllocate(CldMaterialAllocateDto cldMaterialAllocate);

    /**
     * 修改物资调拨
     *
     * @param cldMaterialAllocate 物资调拨
     * @return 结果
     */
    int updateCldMaterialAllocate(CldMaterialAllocateDto cldMaterialAllocate);

    /**
     * 审核物资调拨单
     *
     * @param cldMaterialAllocate
     * @return
     */
    int auditCldMaterialAllocate(CldMaterialAllocate cldMaterialAllocate);

    /**
     * 批量删除物资调拨
     *
     * @param materialAllocateIds 需要删除的物资调拨主键集合
     * @return 结果
     */
    int deleteCldMaterialAllocateByMaterialAllocateIds(Long[] materialAllocateIds);

    /**
     * 删除物资调拨信息
     *
     * @param materialAllocateId 物资调拨主键
     * @return 结果
     */
    int deleteCldMaterialAllocateByMaterialAllocateId(Long materialAllocateId);
}
